package com.kai.mqtt.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kai.mqtt.auth.entity.MqttUser;
import com.kai.mqtt.data.PageResult;
import com.kai.mqtt.data.request.MqttUserLoginRequest;
import com.kai.mqtt.data.request.MqttUserRequest;
import com.kai.mqtt.data.request.PageMqttUserRequest;
import com.kai.mqtt.data.response.MqttUserResponse;

/**
 * @author weijk
 * @since 2024/8/15
 */
public interface IMqttUserService extends IService<MqttUser> {

    /**
     * 校验用户名密码
     *
     * @param username 用户名
     * @param password 密码
     * @return true-成功，false-失败
     */
    Boolean checkValid(String username, String password);

    /**
     * 登录
     *
     * @param request 参数
     * @return accessToken
     */
    String login(MqttUserLoginRequest request);

    /**
     * 登出
     *
     * @return 结果
     */
    Boolean logout();

    /**
     * 分页查询用户列表
     *
     * @param request 参数
     * @return 用户列表
     */
    PageResult<MqttUserResponse> pageUser(PageMqttUserRequest request);

    /**
     * 创建用户
     *
     * @param request 参数
     * @return 结果
     */
    Boolean createUser(MqttUserRequest request);

    /**
     * 删除用户
     *
     * @param id id
     * @return 结果
     */
    Boolean deleteUser(Integer id);
}
